import { sequelize } from '../config/database.js';
import { Admin, Domain, Expert } from '../models/index.js';

async function initializeSampleData() {
  try {
    console.log('🚀 开始初始化示例数据...');

    // 创建丰富的领域数据
    const domains = [
      {
        name: '育儿教育',
        description: '专业的育儿知识和早期教育指导，涵盖0-12岁儿童成长发育、营养健康、行为习惯培养等',
        welcome_message_1: '欢迎来到育儿教育咨询！',
        welcome_message_2: '我们的专家团队将为您提供科学、专业的育儿指导，助力孩子健康成长。',
        precondition_config: {
          fields: [
            {
              name: 'child_age',
              label: '孩子年龄',
              type: 'radio',
              options: ['0-1岁', '1-3岁', '3-6岁', '6-12岁'],
              required: true
            },
            {
              name: 'child_gender',
              label: '孩子性别',
              type: 'radio',
              options: ['男孩', '女孩'],
              required: true
            },
            {
              name: 'concern_areas',
              label: '关注领域',
              type: 'checkbox',
              options: ['营养健康', '行为习惯', '学习能力', '社交能力', '情绪管理'],
              required: false
            }
          ]
        },
        sort_order: 1,
        is_enabled: true
      },
      {
        name: '心理健康',
        description: '专业的心理咨询和心理健康指导，包括焦虑抑郁、压力管理、人际关系、职场心理等',
        welcome_message_1: '欢迎来到心理健康咨询！',
        welcome_message_2: '在这里，您可以安全地表达内心感受，我们的专业心理咨询师将陪伴您走过困难时期。',
        precondition_config: {
          fields: [
            {
              name: 'age_group',
              label: '年龄段',
              type: 'radio',
              options: ['18-25岁', '26-35岁', '36-45岁', '46-60岁', '60岁以上'],
              required: true
            },
            {
              name: 'consultation_type',
              label: '咨询类型',
              type: 'radio',
              options: ['情绪困扰', '人际关系', '职场压力', '家庭问题', '其他'],
              required: true
            }
          ]
        },
        sort_order: 2,
        is_enabled: true
      },
      {
        name: '营养健康',
        description: '专业的营养指导和健康管理，包括饮食搭配、减肥塑形、慢性病调理、运动健身等',
        welcome_message_1: '欢迎来到营养健康咨询！',
        welcome_message_2: '让我们一起制定科学的饮食计划，打造健康的生活方式。',
        precondition_config: {
          fields: [
            {
              name: 'health_goal',
              label: '健康目标',
              type: 'radio',
              options: ['减肥瘦身', '增肌塑形', '疾病调理', '营养补充', '健康维护'],
              required: true
            },
            {
              name: 'current_issues',
              label: '当前问题',
              type: 'checkbox',
              options: ['肥胖', '营养不良', '消化问题', '血糖异常', '血压异常', '其他'],
              required: false
            }
          ]
        },
        sort_order: 3,
        is_enabled: true
      },
      {
        name: '职场发展',
        description: '专业的职业规划和职场技能指导，包括求职面试、职业转型、领导力提升、团队管理等',
        welcome_message_1: '欢迎来到职场发展咨询！',
        welcome_message_2: '我们将帮助您规划职业道路，提升职场竞争力，实现职业目标。',
        precondition_config: {
          fields: [
            {
              name: 'career_stage',
              label: '职业阶段',
              type: 'radio',
              options: ['应届毕业生', '工作1-3年', '工作3-5年', '工作5-10年', '10年以上'],
              required: true
            },
            {
              name: 'industry',
              label: '所在行业',
              type: 'text',
              required: false
            }
          ]
        },
        sort_order: 4,
        is_enabled: true
      },
      {
        name: '情感咨询',
        description: '专业的情感关系指导，包括恋爱技巧、婚姻经营、分手挽回、单身脱单等',
        welcome_message_1: '欢迎来到情感咨询！',
        welcome_message_2: '爱情路上的困惑，让我们的专家为您答疑解惑，找到属于您的幸福。',
        precondition_config: {
          fields: [
            {
              name: 'relationship_status',
              label: '感情状态',
              type: 'radio',
              options: ['单身', '恋爱中', '已婚', '离异', '其他'],
              required: true
            },
            {
              name: 'consultation_focus',
              label: '咨询重点',
              type: 'checkbox',
              options: ['脱单技巧', '恋爱维护', '婚姻经营', '分手挽回', '情感创伤'],
              required: false
            }
          ]
        },
        sort_order: 5,
        is_enabled: true
      },
      {
        name: '法律咨询',
        description: '专业的法律问题解答，包括合同纠纷、劳动争议、婚姻家庭、房产纠纷等常见法律问题',
        welcome_message_1: '欢迎来到法律咨询！',
        welcome_message_2: '我们的执业律师将为您提供专业的法律建议，维护您的合法权益。',
        precondition_config: {
          fields: [
            {
              name: 'legal_area',
              label: '法律领域',
              type: 'radio',
              options: ['合同纠纷', '劳动争议', '婚姻家庭', '房产纠纷', '交通事故', '其他'],
              required: true
            },
            {
              name: 'urgency',
              label: '紧急程度',
              type: 'radio',
              options: ['非常紧急', '比较紧急', '一般', '不紧急'],
              required: true
            }
          ]
        },
        sort_order: 6,
        is_enabled: true
      },
      {
        name: '财务理财',
        description: '专业的理财规划和投资指导，包括基金股票、保险规划、房产投资、退休规划等',
        welcome_message_1: '欢迎来到财务理财咨询！',
        welcome_message_2: '让我们帮您制定合理的理财计划，实现财富增值和人生目标。',
        precondition_config: {
          fields: [
            {
              name: 'investment_experience',
              label: '投资经验',
              type: 'radio',
              options: ['新手小白', '有一定经验', '经验丰富', '专业投资者'],
              required: true
            },
            {
              name: 'financial_goals',
              label: '理财目标',
              type: 'checkbox',
              options: ['资产保值', '稳健增值', '高收益投资', '退休规划', '子女教育'],
              required: false
            }
          ]
        },
        sort_order: 7,
        is_enabled: true
      },
      {
        name: '学习教育',
        description: '专业的学习方法和教育指导，包括学习规划、考试技巧、专业选择、留学申请等',
        welcome_message_1: '欢迎来到学习教育咨询！',
        welcome_message_2: '我们将帮助您找到最适合的学习方法，提升学习效率，实现学业目标。',
        precondition_config: {
          fields: [
            {
              name: 'education_stage',
              label: '教育阶段',
              type: 'radio',
              options: ['小学', '初中', '高中', '大学', '研究生', '职业教育'],
              required: true
            },
            {
              name: 'subject_areas',
              label: '学科领域',
              type: 'checkbox',
              options: ['语文', '数学', '英语', '理科', '文科', '艺术', '体育'],
              required: false
            }
          ]
        },
        sort_order: 8,
        is_enabled: true
      },
      {
        name: '健身运动',
        description: '专业的健身指导和运动规划，包括减脂塑形、增肌训练、康复训练、运动营养等',
        welcome_message_1: '欢迎来到健身运动咨询！',
        welcome_message_2: '让我们一起制定科学的运动计划，打造健康强壮的体魄。',
        precondition_config: {
          fields: [
            {
              name: 'fitness_goal',
              label: '健身目标',
              type: 'radio',
              options: ['减脂瘦身', '增肌塑形', '提高体能', '康复训练', '保持健康'],
              required: true
            },
            {
              name: 'exercise_experience',
              label: '运动基础',
              type: 'radio',
              options: ['零基础', '初级', '中级', '高级'],
              required: true
            }
          ]
        },
        sort_order: 9,
        is_enabled: true
      },
      {
        name: '美容护肤',
        description: '专业的美容护肤指导，包括护肤方案、化妆技巧、医美咨询、抗衰老等',
        welcome_message_1: '欢迎来到美容护肤咨询！',
        welcome_message_2: '让我们帮您找到最适合的护肤方案，绽放自然美丽。',
        precondition_config: {
          fields: [
            {
              name: 'skin_type',
              label: '肌肤类型',
              type: 'radio',
              options: ['干性肌肤', '油性肌肤', '混合性肌肤', '敏感性肌肤', '不确定'],
              required: true
            },
            {
              name: 'skin_concerns',
              label: '肌肤问题',
              type: 'checkbox',
              options: ['痘痘', '黑头', '毛孔粗大', '色斑', '细纹', '暗沉', '敏感'],
              required: false
            }
          ]
        },
        sort_order: 10,
        is_enabled: true
      }
    ];

    // 创建领域
    for (const domainData of domains) {
      const existingDomain = await Domain.findOne({ where: { name: domainData.name } });
      if (!existingDomain) {
        await Domain.create(domainData);
        console.log(`✅ 创建领域: ${domainData.name}`);
      } else {
        console.log(`ℹ️  领域已存在: ${domainData.name}`);
      }
    }

    // 获取创建的领域
    const createdDomains = await Domain.findAll();
    const domainMap = {};
    createdDomains.forEach(domain => {
      domainMap[domain.name] = domain.id;
    });

    // 创建专家数据
    const experts = [
      // 育儿教育专家
      {
        domain_id: domainMap['育儿教育'],
        nickname: '李晓梅',
        bio: '儿科主任医师，从事儿童保健工作15年，擅长0-6岁婴幼儿生长发育指导、营养喂养、疾病预防等。曾在北京儿童医院进修，发表相关论文20余篇。',
        welcome_message: '您好！我是李晓梅医生，很高兴为您和宝宝提供专业的育儿指导。每个孩子都是独特的，让我们一起为孩子的健康成长保驾护航。',
        classic_cases: [
          {
            question: '1岁宝宝还不会走路，需要担心吗？',
            answer: '大部分宝宝在9-18个月之间学会走路都是正常的。建议多让宝宝练习爬行和站立，如果18个月还不会走路，建议到医院检查。'
          },
          {
            question: '宝宝总是挑食怎么办？',
            answer: '挑食是很多宝宝都会经历的阶段。建议家长以身作则，营造良好的用餐氛围，多样化食物搭配，不要强迫进食。'
          }
        ],
        sort_order: 1,
        is_enabled: true
      },
      {
        domain_id: domainMap['育儿教育'],
        nickname: '王教授',
        bio: '学前教育专家，教育学博士，从事幼儿教育研究20年。专注于儿童早期智力开发、行为习惯培养、亲子关系建立等领域。',
        welcome_message: '家长朋友们好！我是王教授，专注于儿童早期教育。教育是一门艺术，让我们一起用爱和智慧陪伴孩子成长。',
        classic_cases: [
          {
            question: '3岁孩子总是发脾气怎么办？',
            answer: '3岁是孩子自我意识发展的关键期，发脾气是正常现象。家长要保持冷静，理解孩子的情绪，教会孩子正确表达需求。'
          }
        ],
        sort_order: 2,
        is_enabled: true
      },

      // 心理健康专家
      {
        domain_id: domainMap['心理健康'],
        nickname: '陈心理师',
        bio: '国家二级心理咨询师，认知行为治疗师，从事心理咨询工作8年。擅长焦虑抑郁、情绪管理、人际关系、职场压力等问题的咨询。',
        welcome_message: '您好，我是陈心理师。在这个安全的空间里，您可以自由地表达内心的感受。让我们一起探索内心世界，找到属于您的平静与力量。',
        classic_cases: [
          {
            question: '最近总是感到焦虑，晚上睡不着怎么办？',
            answer: '焦虑是现代人常见的情绪问题。建议您学习一些放松技巧，如深呼吸、冥想等。如果症状持续，建议寻求专业心理咨询。'
          }
        ],
        sort_order: 1,
        is_enabled: true
      },
      {
        domain_id: domainMap['心理健康'],
        nickname: '张博士',
        bio: '临床心理学博士，精神科医师，从事心理治疗15年。专长于抑郁症、焦虑症、强迫症等心理疾病的诊断和治疗。',
        welcome_message: '您好，我是张博士。心理健康同身体健康一样重要，让我们一起面对困难，重建内心的平衡与和谐。',
        classic_cases: [
          {
            question: '感觉自己得了抑郁症，该怎么办？',
            answer: '如果您怀疑自己患有抑郁症，建议及时寻求专业帮助。抑郁症是可以治疗的，通过药物治疗和心理治疗，大多数患者都能康复。'
          }
        ],
        sort_order: 2,
        is_enabled: true
      },

      // 营养健康专家
      {
        domain_id: domainMap['营养健康'],
        nickname: '刘营养师',
        bio: '注册营养师，临床营养学硕士，从事营养咨询工作10年。擅长体重管理、慢性病营养干预、运动营养等。曾为多家健身机构提供营养指导。',
        welcome_message: '您好！我是刘营养师。健康的身体是人生最大的财富，让我们一起制定科学的饮食计划，拥抱健康生活。',
        classic_cases: [
          {
            question: '想要健康减肥，应该怎么安排饮食？',
            answer: '健康减肥的关键是创造合理的热量缺口。建议增加蛋白质摄入，减少精制碳水化合物，多吃蔬菜水果，配合适量运动。'
          }
        ],
        sort_order: 1,
        is_enabled: true
      },

      // 职场发展专家
      {
        domain_id: domainMap['职场发展'],
        nickname: '赵老师',
        bio: 'HR总监，职业规划师，拥有15年人力资源管理经验。曾在多家知名企业担任高管，擅长职业规划、面试技巧、领导力提升等。',
        welcome_message: '您好！我是赵老师。职场如战场，但也是成长的舞台。让我们一起规划您的职业道路，实现职业梦想。',
        classic_cases: [
          {
            question: '工作3年了，感觉没有发展前景，要不要跳槽？',
            answer: '跳槽前要先分析现状：是行业问题、公司问题还是个人问题。建议先尝试在现有岗位上寻求突破，如果确实没有发展空间，再考虑跳槽。'
          }
        ],
        sort_order: 1,
        is_enabled: true
      },

      // 情感咨询专家
      {
        domain_id: domainMap['情感咨询'],
        nickname: '林老师',
        bio: '情感咨询师，婚姻家庭治疗师，从事情感咨询工作12年。擅长恋爱关系、婚姻经营、分手挽回等。帮助上千对情侣和夫妻解决情感问题。',
        welcome_message: '您好！我是林老师。爱情是人生最美好的体验之一，让我们一起学习如何经营感情，收获幸福美满的爱情。',
        classic_cases: [
          {
            question: '和男朋友在一起2年了，感情越来越淡怎么办？',
            answer: '感情变淡是很多情侣都会遇到的问题。建议你们重新审视关系，增加新鲜感，多沟通交流，重燃爱情的火花。'
          }
        ],
        sort_order: 1,
        is_enabled: true
      },

      // 法律咨询专家
      {
        domain_id: domainMap['法律咨询'],
        nickname: '李律师',
        bio: '执业律师，法学硕士，从事法律工作10年。专长于民商事诉讼、合同纠纷、劳动争议等。曾代理各类案件500余起，胜诉率达90%以上。',
        welcome_message: '您好！我是李律师。法律是保护我们权益的武器，让我为您提供专业的法律建议，维护您的合法权益。',
        classic_cases: [
          {
            question: '公司无故辞退我，我该怎么维权？',
            answer: '如果公司违法辞退，您可以申请劳动仲裁要求恢复劳动关系或支付赔偿金。建议保留相关证据，及时申请仲裁。'
          }
        ],
        sort_order: 1,
        is_enabled: true
      },

      // 财务理财专家
      {
        domain_id: domainMap['财务理财'],
        nickname: '王理财师',
        bio: 'CFP国际金融理财师，从事理财规划工作8年。擅长资产配置、基金投资、保险规划等。为数百个家庭制定了个性化的理财方案。',
        welcome_message: '您好！我是王理财师。理财不是富人的专利，而是每个人都应该掌握的技能。让我们一起规划财富，实现财务自由。',
        classic_cases: [
          {
            question: '月薪5000，应该如何理财？',
            answer: '建议按照4321法则：40%用于投资，30%用于生活开支，20%用于储蓄，10%用于保险。可以从基金定投开始，逐步建立投资组合。'
          }
        ],
        sort_order: 1,
        is_enabled: true
      },

      // 学习教育专家
      {
        domain_id: domainMap['学习教育'],
        nickname: '张老师',
        bio: '教育学博士，高级教师，从事教育工作20年。专注于学习方法研究、考试技巧指导、学习心理等。曾指导数千名学生提高学习成绩。',
        welcome_message: '同学们好！我是张老师。学习是一生的事业，掌握正确的学习方法比死记硬背更重要。让我们一起探索高效学习的秘诀。',
        classic_cases: [
          {
            question: '高三了，成绩总是提不上去怎么办？',
            answer: '高三阶段要注重查漏补缺和应试技巧。建议制定详细的复习计划，重点攻克薄弱环节，同时保持良好的心态。'
          }
        ],
        sort_order: 1,
        is_enabled: true
      },

      // 健身运动专家
      {
        domain_id: domainMap['健身运动'],
        nickname: '健身教练小李',
        bio: '国家级健身教练，运动康复师，从事健身指导工作6年。擅长减脂塑形、增肌训练、功能性训练等。曾帮助上百名学员实现健身目标。',
        welcome_message: '大家好！我是健身教练小李。运动是最好的药物，让我们一起挥洒汗水，打造健康强壮的体魄。',
        classic_cases: [
          {
            question: '新手应该如何开始健身？',
            answer: '新手建议从基础动作开始，如深蹲、俯卧撑、平板支撑等。循序渐进，注意动作标准，避免受伤。建议每周3-4次训练。'
          }
        ],
        sort_order: 1,
        is_enabled: true
      },

      // 美容护肤专家
      {
        domain_id: domainMap['美容护肤'],
        nickname: '美容师小美',
        bio: '高级美容师，皮肤管理师，从事美容护肤工作8年。擅长问题肌肤护理、抗衰老护理、医美咨询等。曾为上千名顾客解决肌肤问题。',
        welcome_message: '美女们好！我是美容师小美。美丽是每个女性的权利，让我们一起找到最适合您的护肤方案，绽放自然美丽。',
        classic_cases: [
          {
            question: '25岁了，应该开始抗衰老护理吗？',
            answer: '25岁是肌肤的分水岭，建议开始使用抗氧化产品，做好防晒，适当使用抗衰老精华。预防永远比治疗更重要。'
          }
        ],
        sort_order: 1,
        is_enabled: true
      }
    ];

    // 创建专家
    for (const expertData of experts) {
      const existingExpert = await Expert.findOne({
        where: {
          nickname: expertData.nickname,
          domain_id: expertData.domain_id
        }
      });
      if (!existingExpert) {
        await Expert.create(expertData);
        console.log(`✅ 创建专家: ${expertData.nickname}`);
      } else {
        console.log(`ℹ️  专家已存在: ${expertData.nickname}`);
      }
    }

    console.log('🎉 示例数据初始化完成！');

  } catch (error) {
    console.error('❌ 示例数据初始化失败:', error);
    throw error;
  }
}

// 如果直接运行此脚本
if (import.meta.url === `file://${process.argv[1]}`) {
  initializeSampleData()
    .then(() => {
      console.log('✅ 脚本执行完成');
      process.exit(0);
    })
    .catch((error) => {
      console.error('❌ 脚本执行失败:', error);
      process.exit(1);
    });
}

export { initializeSampleData };
